package br.com.mmm.javacenter.framework.domain;

import br.com.mmm.javacenter.framework.dao.RepositoryBase;
import br.com.mmm.javacenter.framework.entity.EntidadeBase;
import br.com.mmm.javacenter.log.domain.DomainLog;

@br.com.mmm.javacenter.framework.annotations.Domain
public class DomainBase<T extends EntidadeBase<T>> implements Domain<T>{
	private RepositoryBase<T> repository;
	private DomainLog domainLog;
	
	public DomainLog getDomainLog() {
		return domainLog;
	}
	public void setDomainLog(DomainLog domainLog) {
		this.domainLog = domainLog;
	}
	public RepositoryBase<T> getRepository() {
		return repository;
	}
	public RepositoryBase<T> getRepository(Class<?> klass) {
		repository.klass(klass);
		return repository;
	}
	public void setRepository(RepositoryBase<T> repository) {
		this.repository = repository;
	}
	public void antesIncluir(T t){
		domainLog.log("ADD:" + t.getClass().getSimpleName());
	}
	public void incluir(T t){
		repository.incluir(t);
	}
	public void depoisIncluir(T t){
		domainLog.log("ADICIONADO COM SUCESSO:" + t.getClass().getSimpleName());
	}
	public void alterar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void antesAlterar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void antesAtivar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void antesDesativar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void antesExcluir(T t) {
		// TODO Auto-generated method stub
		
	}
	public void ativar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void depoisAlterar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void depoisAtivar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void depoisDesativar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void depoisExcluir(T t) {
		// TODO Auto-generated method stub
		
	}
	public void desativar(T t) {
		// TODO Auto-generated method stub
		
	}
	public void excluir(T t) {
		// TODO Auto-generated method stub
		
	}
	
}
